package com.java.simple.smallspring.beans.factory;

import com.java.simple.smallspring.beans.BeansException;
import java.util.Map;

/**
 * @author zhoujunlin
 * @date 2022年08月20日 21:24
 * @desc
 */
public interface ListableBeanFactory extends BeanFactory {

    /**
     * 获取指定类型的所有bean对象(不存在则create)  包括其子类
     *
     * @param clazzType
     * @param <T>
     * @return
     * @throws BeansException
     */
    <T> Map<String, T> getBeansOfType(Class<T> clazzType) throws BeansException;

    /**
     * 返回BeanDefinition注册表中的所有beanName
     *
     * @return
     */
    String[] getBeanDefinitionNames();

}
